Memo computer system

September 13th, 2026

What's memo?

Memo is a hobbyist self-contained minimalist computer system at a VERY EARLY production stage. How early? Right now it's a bag of ideas with a little tiny bit of code to test some of them.

It's a project to learn about the whole computer technology stack combining doing and studying, by reading documentation and other projects' code. It's being made the old long way, without using LLMs, as I object to them from a ethical perspective and I feel that using a LLM would defeat the purpose of the project: to learn and enjoy the process.

Motivation

I've been studying and testing Uxn/Varvara, Oberon and ProjectF and I want to experiment with what I'm learning from them. The long-term goal is to design a simple stack virtual machine that should run in cheap hardware, such as FPGAs (aprox. 20k LUTS) and microcontrollers (ESP32 or RP2350). Ideally, after years studying and programming, a complete computer system might hopefully be produced.

Another big motivation for me is to find out how much can be achieved on a small scale. A system that can be understood by a single person in a relatively shot time span, as simple as possible and developed with ubiquitous and small tools which work even in decades-old computers. I must admit that I'm fed up with todays software (and hardware) complexity and want to go back to basics.

Present

Even if I've mentioned Uxn/Varvara as an inspiration and I love the project, there may be more differences than similarities between both projects. For starters, memo is still mostly vaporware and I really don't know what I'm doing, since I'm learning as I go. Also, memo will be way less ground-breaking, as the main programming language is based on C, not Forth. It will be more resource-hungry too, with a 32 bit sized word. And I don't expect memo to be usable in a real-world scenario, it's just a toy project for me to learn and have fun.

I've been developing memo for a few months and right now a bootstrap compiler, an emulator and a disassembler written in C99 exist.

This is an example of a working program:

module test;

func factorial(a: int): int {
  if (a==1) { return 1; }
   return a*fact(a-1);
}

func main(): int {
  var result: int = factorial(5);
  print_int(result); print_ln();
  return 0;
}

Future

The next step will be including structs in memo programming language. I'm still struggling with it, since there is a lot of decision making and testing involved.